<?php

/**
    modifica la materia nella visualizazione del docente
    e nel database: il lato client usa Ajax per l'update
*/

include "../../../lib/start.php";

check_session();
check_permission(DOC_PERM);

$ora = $_POST['ora'];

if($_POST['del'] == 1){
	/*
	 * procedura di cancellazione della firma dal registro
	 * non e' una procedura molto lineare, in quanto aggiunta a posteriori:
	 * non si dovrebbero poter cancellare le firme dal registro, ma solo sostituirle 
	 * con quella corretta in caso di errore;
	 * ma sino a che ad usare il registro non sara' tutta la scuola, la possibilita'
	 * di correggere l'errore e' necessaria
	 */
	// recupero i dati della firma da cancellare
	$sel_firma = "SELECT * FROM reg_firme WHERE id = ".$_POST['del_id'];
	$res_firma = $db->execute($sel_firma);
	$firma = $res_firma->fetch_assoc();
	$error_message = "";
	// apertura della transazione
	try{
		$begin = $db->execute("BEGIN");
		// cancello record in registro_personale...
		$del_per = "DELETE FROM reg_personale WHERE id_reg = ".$firma['id_registro']." AND ora = ".$firma['ora'];
		$res_del_id = $db->execute($del_per);
		$del_reg = "DELETE FROM reg_firme WHERE id = ".$_POST['del_id'];
		$res_del_reg = $db->execute($del_reg);
		$commit = $db->execute("COMMIT");
	} catch(MySQLException $ex){
		$rollback = $db->execute("ROLLBACK");
		$error_message = $ex->getMessage()."::".$ex->getQuery();
	}
	if($error_message != ""){
		$res = "ko|".$error_message;
	}
	else{
		$res = "ok|$ora";
	}
	header("Content-type: text/plain");
	print $res;
	exit;
}

$id = $_SESSION['__user__']->getUid();
$mat = $_POST['mat'];
$str = $id.";".$mat;
$id_registro = $_POST['id_reg'];
$plus = $_POST['plus'];
$update = $_POST['upd'];

if($plus == 1){
	// recupero il valore per l'accodamento se aggiunto
	$sel_f = "SELECT firma FROM reg_firme WHERE id_registro = $id_registro AND ora = $ora";
	$res_f = $db->executeQuery($sel_f);
	if($res_f->num_rows > 0){
		$_f = $res_f->fetch_assoc();
		$frm = $_f['firma'];
		$str = $frm."#".$str;
	}	
}

if($update == 1){
	$upd = "UPDATE reg_firme SET firma = '$str' WHERE id_registro = $id_registro AND ora = $ora";
}
else{
	$upd = "INSERT INTO reg_firme (id_registro, ora, firma) VALUES ($id_registro, $ora, '$str')";
}


if($rs = $db->executeUpdate($upd))
    $res = "ok";
else{
    $res = "ko";
}

// inserimento nel registro personale
$ins = "INSERT INTO reg_personale (id_reg, docente, ora, materia) VALUES ($id_registro, $id, $ora, $mat)";
$r_ins = $db->executeUpdate($ins);

if($res != "ko"){
    $sel_m = "SELECT materia FROM materie WHERE id_materia = $mat";
    $res_m = $db->executeQuery($sel_m);
    $m = $res_m->fetch_assoc();
    $res = $res.";$ora;".$id.";".$m['materia'].";".$plus.";$rs";
}


header("Content-type: text/plain");
print $res;
exit;

?>